// const request = {
//   install(Vue) {
//     console.log("heheda");

//     // 挂全局属性或方法
//     Vue.a = 123;

//     // 挂实例属性或方法
//     Vue.prototype.b = 456;

//     // 挂过滤器或指令。。。等等
//     Vue.filter("ggsmd", (data) => {
//       return data + "-ggsmd";
//     });

// 全局混入，混入也可以进行全局注册。使用时格外小心！一旦使用全局混入，它将影响每一个之后创建的 Vue 实例。使用恰当时，这可以用来为自定义选项注入处理逻辑。
//     Vue.mixin({
//       // 混入的数据也必须是函数，如果组件实例自己有，那么就用组件实例自己的
//       data() {
//         return {
//           ccc: "ccc",
//         };
//       },

//       // 混入的方法会和组件实例进行合并，如果组件实例也存在同名方法，那么以组件实例为准
//       methods: {
//         sayHi(name) {
//           console.log("hi", name);
//         },
//       },

//       // 混入的生命周期钩子比组件实例的先执行
//       created() {
//         console.log("mixin 的 created...");
//       },
//     });
//   },
// };

const request = {
  install(Vue, { baseURL }) {
    // console.log(this.$options.useRequest);

    Vue.prototype.$request = async (opts) => {
      // const baseURL = "https://www.uinav.com";
      const { url, ...rest } = opts;

      uni.showLoading({
        title: "加载中...",
      });

      const [err, res] = await uni.request({
        url: baseURL + url,
        ...rest,
      });

      uni.hideLoading();

      return res;
    };

    Vue.mixin({
      created() {
        if (this.$options.useHeHe) {
          console.log("hehe");
        }
      },
    });
  },
};

export default request;

// function hehe({ baseURL }) {
//   const request = {
//     install(Vue) {
//       Vue.prototype.$request = async (opts) => {
//         // const baseURL = "https://www.uinav.com";
//         const { url, ...rest } = opts;

//         const [err, res] = await uni.request({
//           url: baseURL + url,
//           ...rest,
//         });

//         return res;
//       };
//     },
//   };
//   return request
// }

// export default hehe;
